﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be
Imports System.Data.SqlClient
Imports System.Data

Partial Class Atencion_al_Cliente_AtencionCliente
    Inherits System.Web.UI.Page
    Implements System.Web.UI.ICallbackEventHandler

    Private atencionPosClientes As List(Of EposibleCliente) = Nothing
    Private atencionClientes As List(Of Ecliente) = Nothing
    Private tomaAccion As List(Of EtomaAccion) = Nothing

    Private tomaAcciones As List(Of EtomaAccion) = Nothing
    Private inmuebles As List(Of EunidInmobiliarias) = Nothing
    Private proforma As New EproformaCabecera
    Private separacionVenta As New EseparacionVenta

#Region "           Formulario                          "
    Public Property sPosibleCliente() As List(Of EposibleCliente)
        Get
            If Session("atencionPosClientes") Is Nothing Then
                Return Nothing
            Else
                Return Session("atencionPosClientes")
            End If
        End Get
        Set(ByVal value As List(Of EposibleCliente))
            Session("atencionPosClientes") = value
        End Set
    End Property
    Public Property sCliente() As List(Of Ecliente)
        Get
            If Session("atencionClientes") Is Nothing Then
                Return Nothing
            Else
                Return Session("atencionClientes")
            End If
        End Get
        Set(ByVal value As List(Of Ecliente))
            Session("atencionClientes") = value
        End Set
    End Property
    Public Property sProformas() As List(Of EproformaCabecera)
        Get
            If Session("proformas") Is Nothing Then
                Return Nothing
            Else
                Return Session("proformas")
            End If
        End Get
        Set(ByVal value As List(Of EproformaCabecera))
            Session("proformas") = value
        End Set
    End Property
    Public Property sProformasDet() As List(Of EunidInmobiliarias)
        Get
            If Session("sProformasDet") Is Nothing Then
                Return Nothing
            Else
                Return Session("sProformasDet")
            End If
        End Get
        Set(ByVal value As List(Of EunidInmobiliarias))
            Session("sProformasDet") = value
        End Set
    End Property
    Public Property sSeparacionVentas() As List(Of EseparacionVenta)
        Get
            If Session("separacionVentas") Is Nothing Then
                Return Nothing
            Else
                Return Session("separacionVentas")
            End If
        End Get
        Set(ByVal value As List(Of EseparacionVenta))
            Session("separacionVentas") = value
        End Set
    End Property
    Public Property sSeparacionVentasDet() As List(Of EunidInmobiliarias)
        Get
            If Session("sSeparacionVentasDet") Is Nothing Then
                Return Nothing
            Else
                Return Session("sSeparacionVentasDet")
            End If
        End Get
        Set(ByVal value As List(Of EunidInmobiliarias))
            Session("sSeparacionVentasDet") = value
        End Set
    End Property
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            Me.sPosibleCliente = Nothing
            Me.sCliente = Nothing
        End If

        Dim cbReference As String
        cbReference = Page.ClientScript.GetCallbackEventReference(Me, "arg", "ReceiveServerData", "null", True)

        Dim callbackScript As String = ""
        callbackScript &= "function CallTheServer(arg)" & _
                          "{" & cbReference & "; }"

        Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "CallTheServer", callbackScript, True)
    End Sub
    Private Function posibleCliente(ByVal pProforma As EproformaCabecera) As String
        Dim sr As New System.IO.StringWriter()
        Dim htm As New HtmlTextWriter(sr)
        atencionPosClientes = RposibleCliente.SeleccionarFiltroAtencionPosClientexNombreApePaternoApeMaterno _
                                             (Me.Master.descEmpresa, False, pProforma)
        Session("atencionPosClientes") = atencionPosClientes
        Me.sPosibleCliente = atencionPosClientes
        If Not atencionPosClientes Is Nothing Then
            Me.gvwAtencionPosCliente.DataSource = atencionPosClientes
            Me.gvwAtencionPosCliente.DataBind()
            Me.gvwAtencionPosCliente.RenderControl(htm)
        End If
        htm.Flush()
        Return sr.ToString()
    End Function


    Protected Sub btnExcelAtencionCliente_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExcelAtencionCliente.Click
        'atencionPosClientes = Session("atencionPosClientes")
        'atencionPosClientes = SeleccionarFiltroAtencion(Me.Master.descEmpresa, Session("proformas"))
        
        'If Not atencionPosClientes Is Nothing Then
        Dim fileName As String = "Consulta{0}.xls"
        fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
        Dim Response As HttpResponse = HttpContext.Current.Response
        Response.ContentType = "application/vnd.ms-excel"
        Response.Charset = "UTF-8"
        Response.ContentEncoding = System.Text.Encoding.Default
        Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)
        Response.Write("Nro Pos. Cliente")
        Response.Write(vbTab)
        Response.Write("Nombres")
        Response.Write(vbTab)
        Response.Write("Teléfonos")
        Response.Write(vbTab)
        Response.Write("Nivel Interes")
        Response.Write(vbTab)
        Response.Write("F. Oper.")
        Response.Write(vbTab)
        Response.Write("Vendedor")
        Response.Write(vbTab)
        Response.Write("N° Acciones")
        Response.Write(vbTab)
        Response.Write("Correo Electrónico")
        Response.Write(vbTab)
        Response.Write("F. Proforma")
        Response.Write(vbTab)
        Response.Write("Forma de Contacto")
        Response.Write(vbTab)
        Response.Write("Como se enteró")
        Response.Write(vbTab)
        Response.Write(vbCrLf)
        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(Me.Master.descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_atencionPosClienteTotal_sel", cn)
                'Using cmd As New SqlCommand("usp_atencionPosCliente_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = Session("proformas").idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = Session("proformas").idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = Session("proformas").Evendedor.idVendedor
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = Session("proformas").EnivelInteres.idNivelInteres
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = Session("proformas").filtro
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = Session("proformas").fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = Session("proformas").fchFin
                cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = Session("proformas").idFormaContacto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            'atencionPosClientes = New List(Of EposibleCliente)
                            'Dim atencionPosCliente As EposibleCliente = Nothing
                            Do While dr.Read

                                Dim value As String

                                ' For Each unidad In atencionPosClientes
                                'value = unidad.idPosCliente
                                value = CStr(dr.GetInt32(dr.GetOrdinal("idPosCliente")))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.NombresCompletos
                                value = dr.GetString(dr.GetOrdinal("nombre"))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.Telefonos
                                value = dr.GetString(dr.GetOrdinal("telefonoFijo"))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.descNivelInteres
                                value = dr.GetString(dr.GetOrdinal("descNivelInteres"))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.fchAccion
                                value = dr.GetString(dr.GetOrdinal("fchAccion"))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.NombreVendedor
                                value = dr.GetString(dr.GetOrdinal("Vendedor"))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.NAccion
                                dr.GetInt32(dr.GetOrdinal("NAccion"))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.email
                                value = dr.GetString(dr.GetOrdinal("email"))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.fechaProforma
                                value = dr.GetString(dr.GetOrdinal("fechaProforma"))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.formaContacto
                                value = dr.GetString(dr.GetOrdinal("formaContacto"))
                                Response.Write(value)
                                Response.Write(vbTab)

                                'value = unidad.comoseEntero
                                value = dr.GetString(dr.GetOrdinal("comoseEntero"))
                                Response.Write(value)
                                Response.Write(vbCrLf)
                                'Next
                                'Response.End()
                                'Else

                                'End If
                            Loop
                            dr.Close()
                        Else
                            Dim jsMensaje As String = Nothing
                            jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
                            Controls.Add(New LiteralControl(jsMensaje))
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        ' End If
    End Sub
    Protected Sub gvwAtencionPosCliente_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwAtencionPosCliente.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes.Add("OnClick", "CallTheServer('showDetPosibleCliente@" + e.Row.RowIndex.ToString + "');")
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Private Function Cliente(ByVal pProforma As EproformaCabecera) As String
        Dim sr As New System.IO.StringWriter()
        Dim htm As New HtmlTextWriter(sr)
        atencionClientes = Rcliente.SeleccionarFiltroAtencionClientexNombreApePaternoApeMaterno _
                                    (Me.Master.descEmpresa, False, pProforma)
        Session("atencionClientes") = atencionClientes
        Me.sCliente = atencionClientes
        If Not atencionClientes Is Nothing Then
            Me.gvwAtencionCliente.DataSource = atencionClientes
            Me.gvwAtencionCliente.DataBind()
            Me.gvwAtencionCliente.RenderControl(htm)
        End If
        htm.Flush()
        Return sr.ToString()
    End Function
    Protected Sub gvwAtencionCliente_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwAtencionCliente.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes.Add("OnClick", "CallTheServer('showDetCliente@" + e.Row.RowIndex.ToString + "');")
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
#End Region

#Region "           Posible Cliente                     "
    Protected Sub egvProformas_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles egvProformas.RowCreated
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")

            CType(e.Row.Cells(1).FindControl("imgObs"), HtmlImage).Attributes.Add("onmouseover", _
                                                                                 "showMsg(this,'" & DataBinder.Eval(e.Row.DataItem, "observacion").ToString().Trim & _
                                                                                 "','" & DataBinder.Eval(e.Row.DataItem, "descCtaInicial").ToString().Trim & _
                                                                                 "','" & DataBinder.Eval(e.Row.DataItem, "descSaldo").ToString().Trim & "',event);")
            CType(e.Row.Cells(1).FindControl("imgObs"), HtmlImage).Attributes.Add("onmouseout", "hideMsg()")

            Dim strUidProyecto As String = DataBinder.Eval(e.Row.DataItem, "idProyecto").ToString()
            Dim strUidEtapa As String = DataBinder.Eval(e.Row.DataItem, "idEtapa").ToString()
            Dim strUidProforma As String = DataBinder.Eval(e.Row.DataItem, "idProforma").ToString()
            Dim gvwDetalle As GridView = CType(e.Row.FindControl("egvDetalleInmueble"), GridView)
            AddHandler gvwDetalle.RowCreated, AddressOf egvDetalleInmueble_RowCreated
            If strUidProyecto.Length > 0 AndAlso strUidEtapa.Length > 0 AndAlso strUidProforma.Length > 0 Then
                inmuebles = sProformasDet
                Dim LproformaDetalles = From pd In inmuebles _
                                        Where pd.idProyecto = CType(strUidProyecto, Int32) AndAlso _
                                              pd.idEtapa = CType(strUidEtapa, Int32) AndAlso _
                                              pd.idProforma = CType(strUidProforma, Int32) _
                                        Select pd
                If inmuebles.Count > 0 Then
                    gvwDetalle.DataSource = LproformaDetalles
                    Dim objFila As ExGridView.ExtGridViewRow = CType(e.Row, ExGridView.ExtGridViewRow)
                    objFila.ShowExpand = True
                End If
            End If
        End If
    End Sub
    Protected Sub egvDetalleInmueble_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
        End If
    End Sub
    Private Function cargarTomaAccionPosCliente(ByVal pProforma As EproformaCabecera) As String
        Dim sr As New System.IO.StringWriter()
        Dim htm As New HtmlTextWriter(sr)
        Me.gvwAccion.DataSource = Nothing
        Me.gvwAccion.DataSource = RtomaAccion.SeleccionarTodoXPosCliente(Me.Master.descEmpresa, pProforma)
        Me.gvwAccion.DataBind()
        Me.gvwAccion.RenderControl(htm)
        htm.Flush()
        Return sr.ToString()
    End Function
#End Region

#Region "           Cliente                             "
    Protected Sub egvSeparacionVenta_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
        Handles egvSeparacionVenta.RowCreated
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")

            CType(e.Row.Cells(1).FindControl("imgObs"), HtmlImage).Attributes.Add("onmouseover", _
                                                                     "showMsg(this,'" & DataBinder.Eval(e.Row.DataItem, "observacion").ToString().Trim & _
                                                                     "','','',event);")
            CType(e.Row.Cells(1).FindControl("imgObs"), HtmlImage).Attributes.Add("onmouseout", "hideMsg()")

            Dim strUidProyecto As String = DataBinder.Eval(e.Row.DataItem, "idProyecto").ToString()
            Dim strUidEtapa As String = DataBinder.Eval(e.Row.DataItem, "idEtapa").ToString()
            Dim strUidSeparacion As String = DataBinder.Eval(e.Row.DataItem, "idSeparacionVenta").ToString()
            Dim gvwDetalle As GridView = CType(e.Row.FindControl("egvDetalleSeparacion"), GridView)
            AddHandler gvwDetalle.RowCreated, AddressOf egvDetalleSeparacion_RowCreated
            If strUidProyecto.Length > 0 AndAlso strUidEtapa.Length > 0 AndAlso strUidSeparacion.Length > 0 Then
                inmuebles = sSeparacionVentasDet
                Dim LseparacionDetalles = From pd In inmuebles _
                                        Where pd.idProyecto = CType(strUidProyecto, Int32) AndAlso _
                                              pd.idEtapa = CType(strUidEtapa, Int32) AndAlso _
                                              pd.idProforma = CType(strUidSeparacion, Int32) _
                                        Select pd
                '                             pd.idSeparacionVenta = CType(strUidSeparacion, Int32) _
                If inmuebles.Count > 0 Then
                    gvwDetalle.DataSource = LseparacionDetalles
                    Dim objFila As ExGridView.ExtGridViewRow = CType(e.Row, ExGridView.ExtGridViewRow)
                    objFila.ShowExpand = True
                End If
            End If
        End If
    End Sub
    Protected Sub egvDetalleSeparacion_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
        End If
    End Sub
    Private Function cargarTomaAccionCliente(ByVal pSeparacionVenta As EseparacionVenta) As String
        Dim sr As New System.IO.StringWriter()
        Dim htm As New HtmlTextWriter(sr)
        Me.gvwAccion.DataSource = Nothing
        Me.gvwAccion.DataSource = RtomaAccion.SeleccionarTodoXCliente(Me.Master.descEmpresa, pSeparacionVenta) 'tomaAcciones
        Me.gvwAccion.DataBind()
        Me.gvwAccion.RenderControl(htm)
        htm.Flush()
        Return sr.ToString()
    End Function
#End Region

#Region "           Accion                              "
    Protected Sub gvwAccion_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwAccion.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
        End If
    End Sub
#End Region

#Region "           CallBack                            "
    Private _callbackArgument As String
    Public Function GetCallbackResult() As String Implements System.Web.UI.ICallbackEventHandler.GetCallbackResult
        Return _callbackArgument
    End Function
    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
        Try
            If eventArgument <> String.Empty Then
                Dim varParams() As String = eventArgument.Split("@")
                Dim sr As New System.IO.StringWriter()
                Dim htm As New HtmlTextWriter(sr)
                _callbackArgument = ""
                Select Case varParams(0)
                    Case "divddlVendedor"
                        Me.selVendedor.DataSource = Rvendedor.SeleccionarXEstado(Me.Master.descEmpresa, True)
                        Me.selVendedor.DataTextField = "NombresCompletos"
                        Me.selVendedor.DataValueField = "idVendedor"
                        Me.selVendedor.DataBind()
                        Me.selVendedor.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlFormaContacto"
                        Me.selFormaContacto.DataSource = RformaContacto.SeleccionarTodo(Me.Master.descEmpresa, True)
                        Me.selFormaContacto.DataTextField = "descFormaContacto"
                        Me.selFormaContacto.DataValueField = "idFormaContacto"
                        Me.selFormaContacto.DataBind()
                        Me.selFormaContacto.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlNivelInteres"
                        Me.selNivelInteres.DataSource = RnivelInteres.SeleccionarXEstado(Me.Master.descEmpresa, True)
                        Me.selNivelInteres.DataTextField = "descNivelInteres"
                        Me.selNivelInteres.DataValueField = "idNivelInteres"
                        Me.selNivelInteres.DataBind()
                        Me.selNivelInteres.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlAccion"
                        Me.selAccion.DataSource = Raccion.SeleccionarTodoxEstado(Me.Master.descEmpresa, True)
                        Me.selAccion.DataTextField = "descAccion"
                        Me.selAccion.DataValueField = "idAccion"
                        Me.selAccion.DataBind()
                        Me.selAccion.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlRespuesta"
                        Me.selRespuesta.DataSource = Rrespuesta.SeleccionarTodoxEstado(Me.Master.descEmpresa, True)
                        Me.selRespuesta.DataTextField = "descRespuesta"
                        Me.selRespuesta.DataValueField = "idRespuesta"
                        Me.selRespuesta.DataBind()
                        Me.selRespuesta.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divBuscar"
                        Dim proforma As New EproformaCabecera
                        With proforma
                            .idProyecto = Me.Master.idProyecto
                            .idEtapa = Me.Master.idEtapa
                            .Evendedor = New Evendedor
                            .Evendedor.idVendedor = CType(varParams(1), Int32)
                            .EnivelInteres = New EnivelInteres
                            .EnivelInteres.idNivelInteres = CType(varParams(2), Int32)
                            .filtro = varParams(3)
                            .fchInicio = varParams(4)
                            .fchFin = varParams(5)
                            .idFormaContacto = varParams(6)
                        End With
                        Session("proformas") = proforma   ' Agregado por JFG para guardar sesion de proforma
                        _callbackArgument = "divBuscar|divBuscar|divgvwPosibleCliente|" + posibleCliente(proforma) + "|divgvwCliente|" + Cliente(proforma) 'sr.ToString()
                    Case "showDetPosibleCliente"
                        Dim id As Int32 = CType(varParams(1), Int32)
                        atencionPosClientes = Me.sPosibleCliente

                        Dim idPosCliente As Int32 = atencionPosClientes.ElementAt(id).idPosCliente
                        With proforma
                            .idProyecto = Me.Master.idProyecto
                            .idEtapa = Me.Master.idEtapa
                            .EposibleCliente = New EposibleCliente
                            .EposibleCliente.idPosCliente = idPosCliente
                        End With
                        
                        Dim proformas As List(Of EproformaCabecera) = Nothing
                        proformas = RproformaCabecera.SeleccionarXPosCliente(Me.Master.descEmpresa, proforma)
                        Me.sProformas = proformas
                        sProformasDet = RunidInmobiliarias.SeleccionarXPosCliente(Me.Master.descEmpresa, proforma)

                        Me.egvProformas.DataSource = proformas
                        Me.egvProformas.DataBind()
                        Me.egvProformas.RenderControl(htm)
                        htm.Flush()

                        _callbackArgument = "divgvwProformas|showDetPosibleCliente|" + idPosCliente.ToString + "|" _
                                                                            + atencionPosClientes.ElementAt(id).EtpoDcmto.descTpoDcmto + "|" _
                                                                            + atencionPosClientes.ElementAt(id).nroDocumento + "|" _
                                                                            + atencionPosClientes.ElementAt(id).NombresCompletos + "|" _
                                                                            + atencionPosClientes.ElementAt(id).direccion + "|" _
                                                                            + atencionPosClientes.ElementAt(id).telefonoFijo + "|" _
                                                                            + atencionPosClientes.ElementAt(id).email + "|" _
                                                                            + atencionPosClientes.ElementAt(id).Eubigeo.descDepartamento + "|" _
                                                                            + atencionPosClientes.ElementAt(id).Eubigeo.descProvincia + "|" _
                                                                            + atencionPosClientes.ElementAt(id).Eubigeo.descDistrito + "|" _
                                                                            + atencionPosClientes.ElementAt(id).centroLaboral + "|" _
                                                                            + atencionPosClientes.ElementAt(id).telefonoLaboral + "|" _
                                                                            + atencionPosClientes.ElementAt(id).telefonoCelular + "|" _
                                                                            + sr.ToString() + "|divgvwAccion|" _
                                                                            + cargarTomaAccionPosCliente(proforma)
                    Case "showDetCliente"
                        Dim id As Int32 = CType(varParams(1), Int32)
                        atencionClientes = Me.sCliente

                        Dim idCliente As Int32 = atencionClientes.ElementAt(id).idCliente
                        'Dim LSeparacion = From pd In atencionClientes _
                        '                    Where pd.idCliente = idCliente _
                        '                    Select pd
                        With separacionVenta
                            .idProyecto = Me.Master.idProyecto
                            .idEtapa = Me.Master.idEtapa
                            .idCliente = idCliente
                            .Ecliente = New Ecliente
                            .Ecliente.idCliente = idCliente
                            .Ecliente.nroDocumento = atencionClientes.ElementAt(id).nroDocumento
                            .Ecliente.codigoSeparacion = atencionClientes.ElementAt(id).codigoSeparacion

                        End With

                        Dim separacionVentas As List(Of EseparacionVenta) = Nothing
                        separacionVentas = RseparacionVenta.SeleccionarXCliente(Me.Master.descEmpresa, separacionVenta)
                        Me.sSeparacionVentas = separacionVentas
                        sSeparacionVentasDet = RunidInmobiliarias.SeleccionarXCliente(Me.Master.descEmpresa, separacionVenta)

                        Me.egvSeparacionVenta.DataSource = separacionVentas
                        Me.egvSeparacionVenta.DataBind()
                        Me.egvSeparacionVenta.RenderControl(htm)
                        htm.Flush()

                        _callbackArgument = "divgvwSeparacionVentas|showDetCliente|" + idCliente.ToString + "|" _
                                                                            + atencionClientes.ElementAt(id).EtpoDcmto.descTpoDcmto + "|" _
                                                                            + atencionClientes.ElementAt(id).nroDocumento + "|" _
                                                                            + atencionClientes.ElementAt(id).NombresCompletos + "|" _
                                                                            + atencionClientes.ElementAt(id).direccion + "|" _
                                                                            + atencionClientes.ElementAt(id).telefonoFijo + "|" _
                                                                            + atencionClientes.ElementAt(id).email + "|" _
                                                                            + atencionClientes.ElementAt(id).Eubigeo.descDepartamento + "|" _
                                                                            + atencionClientes.ElementAt(id).Eubigeo.descProvincia + "|" _
                                                                            + atencionClientes.ElementAt(id).Eubigeo.descDistrito + "|" _
                                                                            + "" + "|" _
                                                                            + atencionClientes.ElementAt(id).telefonoLaboral + "|" _
                                                                            + atencionClientes.ElementAt(id).telefonoCelular + "|" _
                                                                            + sr.ToString() + "|divgvwAccion|" _
                                                                            + cargarTomaAccionCliente(separacionVenta)
                    Case "saveAccion"
                        Dim resultado As Boolean = False
                        Dim pTomaAccion As New EtomaAccion
                        With pTomaAccion
                            .idProyecto = Me.Master.idProyecto
                            .idEtapa = Me.Master.idEtapa
                            .idTpoCliente = CType(varParams(1), Int32)
                            .idCliente = CType(varParams(2), Int32)
                            .idAccion = CType(varParams(3), Int32)
                            .fchAccion = varParams(4)
                            .horaAccion = varParams(5)
                            .idRespuesta = CType(varParams(6), Int32)
                            .fchRespuesta = varParams(7)
                            .horaRespuesta = varParams(8)
                            .comentario = varParams(9)
                            .idUsuario = Me.Master.idUsuario
                        End With
                        resultado = RtomaAccion.Añadir(Me.Master.descEmpresa, pTomaAccion)

                        If CType(varParams(1), Int32) = 1 Then
                            With proforma
                                .idProyecto = Me.Master.idProyecto
                                .idEtapa = Me.Master.idEtapa
                                .EposibleCliente = New EposibleCliente
                                .EposibleCliente.idPosCliente = CType(varParams(2), Int32)
                            End With
                            _callbackArgument = "divgvwAccion|loadAccion|" + resultado.ToString + "|" + cargarTomaAccionPosCliente(proforma)
                        Else
                            With separacionVenta
                                .idProyecto = Me.Master.idProyecto
                                .idEtapa = Me.Master.idEtapa
                                .Ecliente = New Ecliente
                                .Ecliente.idCliente = CType(varParams(2), Int32)
                            End With
                            _callbackArgument = "divgvwAccion|loadAccion|" + resultado.ToString + "|" + cargarTomaAccionCliente(separacionVenta)
                        End If
                End Select
            End If
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
#End Region
#Region "           ConsultasData                          "
    Public Shared Function SeleccionarFiltroAtencion _
    (ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EposibleCliente)
        Dim atencionPosClientes As List(Of EposibleCliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_atencionPosClienteTotal_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProformaCabecera.filtro
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pProformaCabecera.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pProformaCabecera.fchFin
                cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.idFormaContacto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            atencionPosClientes = New List(Of EposibleCliente)
                            Dim atencionPosCliente As EposibleCliente = Nothing
                            Do While dr.Read

                                atencionPosCliente = New EposibleCliente( _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("fchAccion")), _
                                    dr.GetInt32(dr.GetOrdinal("estadoProceso")), _
                                    dr.GetString(dr.GetOrdinal("descEstadoProceso")), _
                                    dr.GetString(dr.GetOrdinal("fechaProforma")), _
                                    dr.GetString(dr.GetOrdinal("formaContacto")), _
                                    dr.GetString(dr.GetOrdinal("comoseEntero")), _
                                    dr.GetString(dr.GetOrdinal("Vendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("NAccion")))
                                atencionPosClientes.Add(atencionPosCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return atencionPosClientes
    End Function
#End Region
End Class
